package Modelo;
import java.util.Date;
import java.awt.Color;

public class Formatos{
    
    public String ConvertirDate(Date date){
        
        String fecha = ""+date.getDate()+"/"+(date.getMonth()+1)+"/"+(date.getYear()+1900);
        
        return fecha;
    }
    
    public Date ConvertirFecha(String fecha){
        
        fecha = fecha.substring(3,5)+"/"+fecha.substring(0,2)+"/"+fecha.substring(6);
        
        Date date=new Date(fecha);
        
        return date;
    }
    
    public boolean IngresoFecha(javax.swing.JTextField jTxtFecha){
        Formatos formato = new Formatos();
        String fecha = jTxtFecha.getText();
        fecha=fecha.trim();
        
        if(fecha.length()>6){
            String aFec = fecha.substring(6);
            java.sql.Date date = new java.sql.Date(new java.util.Date().getTime());
            String year = ""+(date.getYear()+1900);
            
            year = year.substring(0,(year.length()-aFec.length()));
            aFec= year+aFec;
            
            fecha = fecha.substring(0,6)+aFec;
            jTxtFecha.setText(fecha);
        }
        
        boolean format = comprobarFecha(fecha);
        if(!format){
            fecha="/  /";
            jTxtFecha.setText("");
            jTxtFecha.setBackground(Color.RED);
            return false;
        }
        
        return true;
    }
    
    public boolean comprobarFecha(String x){
        try{
            if(x.equals("/  /")) return false;
            String dia = x.substring(0,2);
            String mes = x.substring(3,5);
            String year = x.substring(6);

            int d = Integer.parseInt(dia);
            int m = Integer.parseInt(mes);
            int a = Integer.parseInt(year);

            if(a<2007){
                return false;
            }
            if(m>12){
                return false;
            }
            int maxD = maximosDias(m,a);
            if(d>maxD){
                return false;
            }
        }catch(Exception e){return false;}
        return true;
    }
    
    public int maximosDias(int mes, int year){
        if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12){
            return 31;
        }
        if(mes==2){
            year=year%4;
            if(year==0){
                return 29;
            }else{
                return 28;
            }
        }
        if(mes==4 || mes==6 || mes==9 || mes==11){
            return 30;
        }
        return 0;
    }
    
}
